REM 批量将本目录中的所有C文件用Astyle进行代码美化操作REM 设置Astyle命令位置和参数
::@echo off

set astyle="D:\Program Files\AStyle_3.1_windows\AStyle\bin\AStyle.exe"
REM --indent-switches/-S 缩进case标签
REM --indent=spaces=4/-s4 缩进4个空格
REM --indent-namespaces/-N 缩进命名空间块
REM --indent-continuation=4/-xt4 结尾后续本语句符号插入空格,默认为1,可取1~4
REM --style=ansi 大括号独占一行,上下对齐REM --attach-closing-while/-xV (while紧贴)
REM --indent-preproc-block/-xW 缩进#开头的处理语句
REM --indent-preproc-cond/-xw  将预处理器条件语句缩进到与源代码相同的级别
REM --indent-col1-comments/-Y 注释也缩进
REM --pad-oper/-p 运算符周围插入空格
REM --pad-comma/-xg 逗号间插入空格(--pad-oper中已有此效果)
REM --pad-paren/-P 在内部和外部的括号周围插入空格
REM --pad-paren-out/-d 仅在外部的括号周围插入空格填充
REM --pad-paren-in/-D 括号里内插入空格
REM --pad-header/-H 在标头（例如“ if”，“ for”，“ while” ...）和后面的括号之间插入空格
REM --unpad-paren/-U 除去内部和外部的括号周围的多余空间。此选项可以与paren填充选项，pad-paren，pad-paren-out，pad-paren-in和pad-header一起使用
REM --align-pointer=name/-k3 指针符号紧贴名字
REM --max-code-length=#/-xC#  代码行最大长度
REM --break-after-logical/-xL 默认情况下，逻辑条件将放在新行的第一位。选项“ 逻辑后中断”将使逻辑条件置于最后一行的最后。没有最大代码长度，此选项无效
REM --attach-return-type/-xf 返回类型紧贴符号名
REM --attach-return-type-decl/-xh 返回类型紧贴符号名(函数声明)
REM --add-braces/-j 在'if', 'for', 'while'等句块中只有一行也加入大括号
REM --convert-tabs/-c 将TAB符转化成空格,由转化参数指定,引号内的不转化
REM --recursive/-r 对于命令行中的每个目录，请递归处理所有子目录
REM --break-blocks/-f 在标题块周围填充空白行（例如“ if”，“ for”，“ while” ...）
REM --suffix=none / -n 不要保留原始文件的备份。格式化后将清除原始文件
REM --exclude=#### 指定要从处理中排除的文件或子目录####。
REM 循环遍历目录
for /r . %%a in (*.cpp;*.c) do %astyle% --style=ansi -S -s4 -xV -xW  -xw -Y -p -xg -d -H -U -k3  -xC80 -xL -xf -xh -j -c -f "%%a"
for /r . %%a in (*.hpp;*.h) do %astyle% --style=ansi -S -s4 -xV -xW  -xw -Y -p -xg -d -H -U -k3  -xC80 -xL -xf -xh -j -c -f "%%a"

REM 删除所有的astyle生成文件
for /r . %%a in (*.orig) do del "%%a"
pause